#ifndef MAIL_H
#define MAIL_H

#pragma once
#include "AbstractMail.h"

namespace smtp {
    class Mail
        : public AbstractMail {
    public:
        Mail();
        virtual ~Mail();

    public:
        void set_form(std::string form);
        void set_to(std::string to);
        void set_subject(std::string subject);
        void set_content(std::string content, std::string content_type = "text/plain");
        void add_attachfile(std::string file_path);

        virtual std::string              get_form(void) const override;
        virtual std::string              get_to(void) const override;
        virtual std::string              get_subject(void) const override;
        virtual std::string              get_content(void) const override;
        virtual std::vector<std::string> get_attachfiles(void) const override;
        virtual std::string              get_content_type(void) const override;

    private:
        std::string              m_form         = "";
        std::string              m_to           = "";
        std::string              m_subject      = "";
        std::string              m_content      = "";
        std::string              m_content_type = "";
        std::vector<std::string> m_attachfiles  = {};
    };

}  // namespace smtp

#endif